/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BancoDados;

import Sistema.Defs;
import Utilidades.UtilityDB;
import Utilidades.UtilityTime;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;

/**
 * Created on : May 21, 2011, 4:31:38 PM
 * @author diogo
 * SQL:
 * CREATE TABLE Especializacao (
  ProfissionalCodProfissional int4 NOT NULL,
  ProfissaoCodProfissao       int4 NOT NULL,
  DataEspecializacao          date NOT NULL,
  Nivel                       int2 NOT NULL,
  PRIMARY KEY (ProfissionalCodProfissional,
  ProfissaoCodProfissao));
 */
public class Especializacao extends Dado implements Entidade{

	@Override
	public String getTableName() {
		return "Especializacao";
	}

	@Override
	public String[] getPrimaryKey() {
		return new String[]{
					"ProfissionalCodProfissional",
					"ProfissaoCodProfissao"
				};
	}

	@Override
	public String[] getColumns() {
		return new String[]{
					"DataEspecializacao",
					"Nivel"
				};
	}

	/**
	 * funcoa pra pegar todas as colunas. dessa entidade de dado
	 * ctrl c ctrl v
	 * @return
	 */
	public String[] getAllColumns(){
		String[] primaryKeys = this.getPrimaryKey();
		String[] columns = this.getColumns();
		String[] output = new String[primaryKeys.length + columns.length];

		System.arraycopy(primaryKeys,	0, output, 0,					primaryKeys.length);
		System.arraycopy(columns,		0, output, primaryKeys.length,	columns.length);

		return output;
	}

	public static boolean Inserir(
			int ProfissionalCodProfissional,
			int ProfissaoCodProfissao,
			Date DataEspecializacao,
			int Nivel
			) {


		Especializacao e = new Especializacao();
		String[] colunas = e.getAllColumns();
		int x = 0;

		String SQL = UtilityDB.CreateInsert(e.getTableName(),
				colunas[x++], ProfissionalCodProfissional,
				colunas[x++], ProfissaoCodProfissao,
				colunas[x++], DataEspecializacao,
				colunas[x++], Nivel);

		int linhasAfetadas = c.cadastrar(SQL);
		return linhasAfetadas > 0;
	}

	public static boolean Inserir(HttpServletRequest request) {
		String[] colunas = new Especializacao().getAllColumns();
		int x=0;

		int ProfissionalCodProfissional =	Integer.parseInt(request.getParameter(colunas[x++]));
		int ProfissaoCodProfissao =			Integer.parseInt(request.getParameter(colunas[x++]));
		Date DataEspecializacao =			UtilityTime.ToDate(request.getParameter(colunas[x++]), Defs.divisorData);
		int Nivel =							Integer.parseInt(request.getParameter(colunas[x++]));
		
		return Inserir(ProfissionalCodProfissional, ProfissaoCodProfissao, DataEspecializacao, Nivel);
	}
}
